Multilevel compressed index generation method and means

ABSTRACT

A method and means for generating a multilevel compressed index. The high-level blocks of the index have an entry format of CK1, CK2, R in which R is a pointer to a next lower level compressed index block, and CK1, and CK2 are each compressed keys generated from uncompressed keys (UK&#39;&#39;s) represented by pointers on opposite sides of the end boundaries of select low-level compressed index blocks. The generated multilevel index can be searched using the invention described in U.S. application No. 836,825.

United States Patent [54] MULTILEVEL COMPRESSED INDEX GENERATION METHOD AND MEANS 42 Claims, 45 Drawing Figs.

[52] 11.8. C1 340/1725 [51] Int. Cl G06f 7/22 [50] Field of Search 340/172.5; 235/157, 154

LEVEL INDEX NAME, R4 -1 [56] References Cited UNITED STATES PATENTS 3,185,823 5/1965 Ellersick, Jr. et a1. 235/154 3,225,333 12/1965 Vina] 340/1725 3,242,470 3/1966 Hagelbarger.. 340/1725 3,289,169 11/1966 Marosz 340/1725 3,413,611 11/1968 Pfuetze 340/1725 3,490,690 l/1970 Apple et al. 340/1725 X Primary Examiner-Paul J. Henon Assistant Examiner-Melvin B. Chapnick Att0rneys1-lanifin and Jancin and Bernard M. Goldman ABSTRACT: A method and means for generating a multilevel compressed index. The high-level blocks of the index have an entry format of C1(,, CK R in which ]R is a pointer to a next lower level compressed index block, and CK,, and CK are each compressed keys generated from uncompressed keys (UKs) represented by pointers on opposite sides of the end boundaries of select low-level compressed index blocks. The generated multilevel index can be searched using the invention described in US. application No. 836,825.

(APEX COMPRESSED BLOCK) men COMPRESSED LEVEL l l 199 1. 2-1 (ln 1. z-zl- PATENTEDSEP mm 3,603; 937

SHEET 01 0F 28 UNCOMPRESSED INDEX COMPRESSED D x 1 2 3 4 5 ADDR" P1 A1 P2 A2 ADDR 0 0 0 A A 4 BCE R1 A B c 0 0 R1 COMPARE A B c E F 1 0 2 I R2 D H M N 0 R2 com ARE //a' D I 0 0 0 1 M 0 AM R3 M A P 0 0 R3 COMPARE 7 HEAD END OF RECORD 9 FORMAT IN BUFFER FOR UK SUBUST 2 A MUKL LEVEL RL RESERVED hL- uA-1 =LOWEST KEY m COLLATING SEO. ADDRESS 8 FFE BUS 16 U R -\7- ADDRESS uA-A R2 AEIc BEA CIRCUIT 4v J g .l, "r (FIGJS) 5l6A V END INDICATAON \LBYTE DATA REG 1 LO.STE INPT B OTPI B U K M BUFFER u u l JS (FIGBA) (FIGBA) H MUKL LVL RE P1 L0 ST 1 BYTE 1 BYTE iBrTE BU'FFER I K"1 K"1 P-Z K"? ADDRESS A-2 A-2 R-1 P-3 BUS l6 BUFFER A- K3 P-4 AM ADDRESS 3 (F|G.7,80) CIRCU'T R 2 P 5 K 5 KS A K-5 P-6 K-6 2-3 (FIG.I6) 5l6A 10 FIG. 2 B

SEARCH ARG. REG. POINTER REG 12 INVENIIORS (Hess/u 13 BYTE GEORGE F. STEIGERWALT DATA av BuEEER OUTPUT BUS REG (FIGBA) 14/ ATTORNEY PATENTEDSEP 7A9?! 3.603.937

SHEET 05 0F 28 FIG 8 A (GENERATE) 122 BUFFER OUTPUT BUS 125 M AH M L 1 A1 -A2 (nose) A GATE 7 BYTE W TA (HA3) r REG COMP A1+A2 (FIMB) 120 123 F A2 BYTE (F|G.8D) A2 cv (HA6). 7 A R cv (ms) 0 L A2ab BYTE TA (HA3) REG 4 GATE /-121 Lo.sT T5 (H6 3) A INPUT BUS F s. A

30 131/; o IG 2,15) GATE A-A (mes) 13 GATE A-2 (mass) 0 cm K-3 (mam 133A GATE P-1 (F|G.8B) GATE P-2 (H088) o I ma GATEQ -i29 A2 cv (F|G.6)

T6 (HA3) A T2 (FIG.3) A RUN P CTR (mes) 132 o n. k. P END or REC RD can) COUNTER A v M N H (mm 1P cv (FIG.6)' 0 k 13TH RESET To ZERO COMP UK CR p 0A BYTE COUNT (m1) GATE m STATE E (FIG. as)

A2 CY (HA6) A T4 (FIG. 3)

PATENTEDSEP "nan 3503.937

SHEET 0? HF 28 A2 cv (no.6 m0 END or RECORD A me. so) 1 F I G. 8 C cm P -1 FIG. 8B) O cm P-2 (no as) --151 b GENERATE i T 1 (FIG. 3) ADDR l GATE r0 (no.3) T M451 d RST T0 coum 0F 5 NEXT 1 P CY me. 6) P AD R 50 REG 155 v ILO. sr.

LOAD BUFFER ADDRESS 0 BUS 52 (FIG. 28,22) 16 RESERVE R END RESERVE m) i V ADDR r I6 80) GATE STORE RST T0 coum or 5 DDR CTR KorR ADDR l GATE 0 W158 F cm K-i (FIG.8B) cm n-z (Fleas) cm x-s (man) 0 f-a e T 1 (n0. 3) L159 T 6 R or (Hos A R 162 r 0 was) PATENTEUsEP H97! 3,603,937

SHiU 08 [1F 28 F'G 8D (GENERATE) 1ao END BLOCK A2 BYTE (mam INDICATION DECODER A2 cv (H06) A T3 -(flu) END OF RECORD (ms. 6 MA) 40 T sum (FIGJS) R NOT END or RECORD v 5' (Flow T3 (ms) GENERAL RESET A ss 4 180A/(F|G.6,8B)

1a3 aas R cv (ms) 11 (FIG. 5) A 18? +1 iPCY (ms) RL A2 cv (me) Q R CTR R 01 NEXT (H06) A aaa COMP EOU 0R RL RL BYTE (HQH' START (H06) smn CK-2 GEN (F|G.6) cR-4 RERKQR R CY (F|G.6) A R END RESERVE T1 (m3) (mac) PATENTED SET 7 l9?! FIG. 10

sum SIGNAL T ACCESS L1 PTR SHEET 10 0F 28 L 4 LEVEL GENERATION 4T8 /4TO 4H OENERATE CK BLOCK FROM TABLE UK BLOCK IN LO. ST.

ACCESS LT INDEX OF ORIGINAL SORTEO UK BLOCKS ON INPUT I/O TRANSFER CK LOCK T0 LOCAT ION ICLNATED T BY LAST PTR FROM L1 TABLE 'ACCESS FIRST UK BLOCK 0N INPUT 1/0 414) T READ ACCESSED BLOCK M0 L0 ST. AND STORE I B LAST um mm m. 51. ACCESS PM HI. ST

M6 NEXT UK AS LAST BLOCK 0" L1 BLOCK T L INPUT 1/0 on L0 L2 TRANSFER NEXT PTR FROM 'NTERMED'ATE LL PTR TABLE m0 1/0 H I. ST.

41? YES 431 ADD BLOCK END INDICAT on L M0 Lo. 51. REAB ACCESSED 2 I L1 BLOC K 4 4 AND STORE T u K READ ACCESSED L L B Lo 0 K m0 Lo, 1, AND STORE L 51 AND LAST UK mo HI. ST. 432 442 STORE EN 0 or F l LE 0R TRANSFER u K BLOCK FROM L 2 HI. ST. ONTO L2 INTERMEDIATE 1/0 HERMEDMTE 435 T 1/0 REACCESS LAST u K BLOCK on To INPUT 1/ 0 @FIG' H ATENTEU SEP 7 l9?! SHEET um 28 Fl HIGH LEVEL GENERATION FROM E 'R TRANSFER cT BLOCK To I LocATToM DESIGNATED BY 0555 NEXT LAsT PTR FROM cTTRREMT PTR TABLE PTR TABLE ACCESS START OF LAST GEN ERATE Fl LE 0N INTERMEDIATE 1/0 LAST BLOCK 0F INTERMEDIATE L 4 7 F T LE mom 1 3T u K BLOCK IN F T L E 5T M u LAT E DU M M Y UK IN L0. ST. TRANSFER. u K

BLOCK FR 0 M HI. L 4 49 ST. AS NEXT BLOCK READ AccEssEn BLOCK NTERHED'ATE INTO L0. ST. AND STORE LAsT UK PAIR IN HI. M. 462

LT mm NEXT UK BLOCK 0N TRANSFER NEXT PT R INTERMED TATE l /0 FROM CURRENT PTR TABLE INTO HI. sT.

REPLACE LAsT UK IN L0. ST. WITH END IND T 45s STORE HLST r 472 POINTERS cEMERATE: CK BLOCK T A FROM UK BLOCK TM Lo.sT. TRANSFER UK T BLOCK FROM MT. END ST. As NEXT BLOCK 0M (T0 FIGJI) INTERMEDIATE L/O m STORE END 0T FILE 0N mb/ INTERMEDIATE 1/0 PATENVTED sir um SHEET 15 0F 28 5m WRITE-|N|T.(FIG.16) wa WRITE BL. LENGTH (F|G.15) 5mm WRITE PTR. & RD. BL (mm 543m COMPRESS BL. (H618) comm 515m STORE 01a IFIcs.1e,1I,Ia) 5mm STORE HLST. (FIG.|9) DEACODER 5m READ I. STORE m. M I FII;:s.I1,2s I 551 WRITE S.A.& IsI. PTRM 5 51m SEARCHFK) w. 5I3II SEARCH ONE-LEVELIfl J 542E\ WRITE EOF (FIGH') 52 5HB\ BUSOUT (FIGS. 16.1] V V H (FIG-14A) 541A 542A\ 1/0 SELECTION (FIGSH) INTERFACE 5428; CPU STOP (F1015) w BUS mm CONTROLS 512m CPU TRANSFER COMPLETEIPH A 547A 512% smus ACCEPTED (man 2 u sum 512F (FlG.BD)

90A (F1623) M ATTN. m,

UE 52m Irma) smus MODIFIER IFIc.2sI WRITE INITIAL 5m (FIG.15) am CH [)5 CPU STOP 512m (H015) A sum sIsb WRITE BL LTH 543B) (Hug) A 545C GENERAL Bass; l80A(FlG.8D) 2i3B CE& DE 540 (FIG. 18) cu DE 55m (H619) o 5 05am 59am (H023) CE I DE 53m (FIG. 17) T R sIsd HNOTEI USED IN RkLATED APPUCATION NO 836825 

1. A method of generating index entries for a high level of multilevel compressed index, including the steps of machine assembling a plurality of boundary pairs of uncompressed keys, each boundary pair being a last and a first uncompressed key in two sequenced groups of uncompressed keys used in the generation of two sequential index blocks at the lowest level of said compressed index, said machine assembling step providing a sequenced high-level group of uncompressed keys, machine assigning pointers to each of said uncompressed key pairs, said pointers representing addresses of compresses index blocks in said lowest level, machine compressing said uncompressed keys in sequence into compressed keys, and machine generating index entries for said high level by a relational positioning of said pointers with respective pairs of said compressed keys provided by saId machine compressing step.
 2. A method as defined in claim 1 for generating the high-level index, including the steps of machine grouping said boundary pairs of said uncompressed keys and pointers into a sequence of groups, and activating said machine compressing and machine generating steps to convert said groups into respective high-level compressed index blocks, whereby said high-level compressed index blocks provide a high index level.
 3. A method of generating a high-level compressed index as defined in claim 1, further including the steps of said machine compressing step simulating a null uncompressed key as the first uncompressed key in said sequenced high-level group of uncompressed keys, and machine blocking said high-level index entries into high-level blocks as provided by said machine generating step, whereby an independent search characteristic is generated for each high-level block.
 4. A method as defined in claim 3 further including the step of machine transferring each of said high-level blocks to a recording medium in their generated order at preassigned locations, whereby each address representation of said preassigned locations is a pointer for an entry in a next higher level of said index.
 5. A method as defined in claim 3, in which said machine blocking step includes, machine counting not more than a predetermined number of said high-level index entries to comprise any single compressed index block.
 6. A method as defined in claim 3, in which said machine blocking step includes machine completing each compressed index block whenever a next index entry can exceed a predetermined number of bytes for generating each compressed index block, or when no more index entries are being provided by said machine generating step.
 7. A method as defined in claim 2, in which said machine compressing step further includes machine formating a last compressed key for a last index entry in each high-level compressed index block with a special format different from a format used for other compressed keys in the same block.
 8. A method as defined in claim 7, in which said machine formating step further includes machine inserting a predetermined byte as the last compressed key in the last index entry for ending each index block.
 9. A method as defined in claim 6, further including the step of machine ending the generation of each high level in the multilevel compressed index before generating a next higher index level.
 10. A method as defined in claim 3, for generating a next higher level in said compressed index, including the following steps machine collecting each last pair of uncompressed keys used in the generation of each said high-level block in sorted sequence to provide a machine collection of uncompressed keys, also machine assigning pointers to each said last pair of uncompressed keys, each of said pointers representing the address of a high-level index block for which said last pair was used by said machine generating step, and reiterating said machine compressing step and said machine generating step to generate index entries for the next higher level.
 11. A method as defined in claim 8, further including the step of machine blocking the index entries to generate index blocks for the next higher index level, after said reiterating step has generated index entries in a number to fill a predetermined block size.
 12. A method of generating a multilevel compressed index from a sorted input sequence of uncompressed keys with respective pointers to related data blocks for providing an uncompressed index for a set of data blocks, having the steps of machine grouping said uncompressed keys and related pointers into a plurality of sequenced groups, machine comparing each adjacent pair of uncompressed keys in each sequenced group, machine compressing said adjacent uncompressed keys into compressed keys for a low-index level, and machine Positioning with each compressed key a pointer to a data block related to a first uncompressed key of each adjacent pair of uncompressed keys acted upon by said machine compressing step, each compressed key and its pointer comprising a low-level entry, machine collecting each low-level entry generated from each group of uncompressed keys to build each compressed index block for a lowest level of said compressed index, machine reiterating said machine comparing, machine compressing, and machine collecting steps for each sequential group to build a sequence of compressed index blocks comprising the lowest index level, machine storing each compressed index block in said lowest index level at an assigned address in a machine-addressable storage entity, and providing a boundary pair pointer to represent each assigned address, machine assembling the last uncompressed key in each group and the first uncompressed key in the next sequential group, each said last and first uncompressed keys comprising a boundary pair of uncompressed keys, machine assigning a boundary pair pointer to each said boundary pair, of uncompressed keys, each boundary pair pointer representing the assigned address of a related lowest-level compressed index block for which said last uncompressed key of said boundary pair is a last uncompressed key in the group used by said machine-collecting step to generate the related lowest level compressed index block, machine storing each boundary pair of uncompressed keys and their boundary pair pointers in sequence to form one or more sets of boundary pairs and pointers, machine compressing each set of uncompressed keys in sequence into compressed keys for said high level, and machine recording pairs of said compressed keys for said high level with related boundary pair pointers in the sequence in which they are made available by said machine compressing step in generating compressed keys for said high level, whereby a second compressed key in each pair is generated from a comparison of the uncompressed keys within a single boundary pair.
 13. A method of generating a high level for a compressed index as defined in claim 12, further including the steps of machine sensing the last pair of uncompressed keys in each set used in the generation of each compressed index block at said high level, next machine assembling each last pair of uncompressed keys in the sequence provided by said machine sensing step, and machine repeating said machine assigning, last-mentioned machine compressing, and machine recording steps to generate each entry for a still higher level in said compressed index.
 14. A method of generating each still higher level for a compressed index using the method defined in claim 13, further including the steps of machine indicating the end of generation for each index level and providing an end-of-index signal for each high level being generated, machine repeating the prior-named steps used in generating any high level for generating a next high level, and machine terminating each current level generated for said compressed index in response to said end-of-index signal, and continuing the generation of the next higher level.
 15. A method of generating a multilevel compressed index using the method defined in claim 14, comprising machine counting the number of levels in the compressed index currently generated, machine signalling when said machine counting step indicates a predetermined number of levels upon an occurrence of said end-of-index signal, and, machine terminating the generation of said multilevel index in response to an indication by said machine signalling step whereby a last generated level is an apex level for the multilevel index.
 16. A method of generating a multilevel compressed index as defined in claim 14, including the steps of machine signalling a continuing signal that generation should start for a next higher level when plural Index blocks are generated at any current level upon activation of said machine terminating step for said current level, machine generating a next higher level in said compressed multilevel index in response to said continuing signal, and machine ending the compressed index generating upon said machine signalling step signalling the existence of only one block at the next higher level, whereby a last index block completed at the execution of said machine ending step is an apex compressed block of the multilevel compressed index.
 17. A method of generating a multilevel index as defined in claim 16, including the step of machine storing a pointer to said last index block in a predetermined location for future accessing of the multilevel compressed index.
 18. A method of generating each high level of a compressed index comprising the steps of machine assembling a sequence of boundary pairs of uncompressed keys used in the generation of a plurality of blocks in a next lower level of the compressed index, machine assigning a respective pointer to each of said boundary pairs, said pointer being related to the address of a related one of the blocks in the next lower level, machine grouping said boundary pairs and said respective pointers in sequence for the generation of index blocks in said high level, machine recognizing a null condition as the first uncompressed key in the sequence of boundary pairs, and machine storing a plurality of groupings of said boundary pairs of uncompressed keys in preparation for the generation of a high level of said index.
 19. A method of generating a high level of a compressed index including the steps in claim 18, and including the following steps: machine reading the groupings of uncompressed keys in the sequence stored by said machine storing step, machine compressing the uncompressed keys in each grouping to provide compressed keys, machine recording said compressed keys in sequential pairs with a related one of said pointers to provide each compressed index entry for said high level, machine blocking said entries in their generated sequence for each group of uncompressed keys to generate each high-level block, and machine repeating the preceding steps for each group for said high level until an end is reached for the groups of compressed keys provided by said machine reading step, whereby the end of the index at said high level is reached upon said machine compressing step reaching the end of the uncompressed keys provided by said machine reading step.
 20. A method for generating a next higher level in a multilevel index, including the steps defined in claim 19, and further including machine reiterating the steps of machine assembling boundary pairs, machine-assigning pointers, machine grouping of boundary pairs, machine storing a plurality of groupings, machine reading the groupings, machine compressing the groupings, machine recording the compressed index entries, and machine blocking the entries until the next higher level is completed.
 21. A method for generating a multilevel index including the steps in claim 20, and the additional step of ending the construction of said index as soon as any high-level compressed index is completed with a single index block.
 22. A system of generating index entries for a high level of a multilevel compressed index, including means for machine assembling a plurality of boundary pairs of uncompressed keys, each boundary pair being a last and a first uncompressed key in two sequenced groups of uncompressed keys used in the generation of two sequential index blocks at the lowest level of said compressed index, said machine assembling means providing a sequenced high-level group of uncompressed keys, means for machine assigning pointers to each of said uncompressed key pairs, said pointers representing addresses of compressed index blocks in said lowest level, means for machine compressing said uncomPressed keys in sequence into compressed keys, and means for machine generating index entries for said high level by a relational positioning of said pointers with respective pairs of said compressed keys provided by said machine compressing means.
 23. A system as defined in claim 22 for generating the high-level index, including means for machine grouping said boundary pairs of said uncompressed keys and pointers into a sequence of groups, and said machine compressing means and said machine generating means receiving said groups and generating respective high-level compressed blocks, whereby said high-level blocks provide a high index level.
 24. A system of generating a high-level compressed index as defined in claim 22, further including said machine compressing means simulating a null uncompressed key as the first uncompressed key in said sequenced high-level group of uncompressed keys, and machine blocking means positioning said high-level index entries into high-level blocks as said entries are provided by said machine-generating means, whereby an independent search characteristic is generated for each high-level block.
 25. A system as defined in claim 24, further including means for machine transferring each of said high-level blocks to a recording medium in their generated order at preassigned locations, whereby address representations of said preassigned locations provide pointers for entries in a next higher level of said index.
 26. A system as defined in claim 24, in which said machine blocking means includes, means for machine counting not more than a predetermined number of said high-level index entries to comprise any single compressed index block.
 27. A system as defined in claim 24, in which said machine blocking means includes means for machine completing each compressed index block whenever a next index entry can exceed a predetermined number of bytes for generating each compressed index block, or when no more index entries are being provided by said machine generating means.
 28. A system as defined in claim 23, in which said machine compressing means includes means for machine formating a last compressed key for a last index entry in each high-level compressed index block with a special format different from a format used for other compressed keys in the same block.
 29. A system as defined in claim 28, in which said machine formating means further includes means for machine inserting a predetermined byte as the last compressed key in the last index entry for ending each index block.
 30. A system as defined in claim 27, further including means for machine ending the generation of each high level in the multilevel compressed index before generating a next higher index level.
 31. A system as defined in claim 24, for generating a next higher level in said compressed index, including means for machine collecting each last pair of uncompressed keys used in the generation of each said high-level block in sorted sequence to provide a machine collection of uncompressed keys, means for machine assigning other pointers to each said last pair of uncompressed keys, each of said other pointers representing the address of a high-level index block for which said last pair was used by said machine generating means, and said machine compressing means and said machine generating means being actuated to generate index entries for the next higher level.
 32. A system as defined in claim 30, in which said machine blocking means generates index blocks for the next higher index level by sequentially controlling the index entries by means of a predetermined block size.
 33. A system of generating a multilevel compressed index from a sorted input sequence of uncompressed keys with respective pointers to related data blocks for providing an uncompressed index for a set of data blocks, comprising means for machine grouping said uncompressed keys and relaTed pointers into a plurality of sequenced groups, means for machine comparing each adjacent pair of uncompressed keys in each sequenced group, means for machine compressing said adjacent uncompressed keys into compressed keys for a low index level, and means for machine positioning with each compressed key a pointer to a data block related to a first uncompressed key of each adjacent pair of uncompressed keys acted upon by said machine compressing means, each compressed key and its pointer comprising a low-level entry, means for machine collecting each low-level entry generated from each group of uncompressed keys to build each compressed index block for a lowest level of said compressed index; and means for activating said machine comparing means, said machine compressing means, and said machine collecting means for each sequential group to build a sequence of compressed index blocks comprising the lowest index level, means for machine storing each compressed index block in said lowest index level at an assigned address in a machine-addressable storage entity, and providing a boundary pair pointer to represent each assigned address, means for machine assembling the last uncompressed key in each group and the first uncompressed key in the next sequential group, each said last and first uncompressed keys comprising a boundary pair of uncompressed keys, means for machine assigning a boundary pair pointer to each said boundary pair of uncompressed keys, each boundary pair pointer representing the assigned address of a related lowest level compressed index block for which said last uncompressed key of said boundary pair is a last uncompressed key in the group used by said machine collecting means to generate the related lowest level compressed index block, means for machine storing each boundary pair of uncompressed keys and their boundary pair pointers in sequence to form one or more sets of boundary pairs and pointers, means for machine compressing each set of uncompressed keys in sequence into compressed keys for said high level, and means for machine recording pairs of said compressed keys for said high level with related boundary pair pointers in the sequence in which they are made available by said machine compressing means in generating compressed keys for said high level, whereby a second compressed key in each pair is generated from a comparison of the uncompressed keys within a single boundary pair.
 34. A system of generating a high level for a compressed index as defined in claim 33, including means for machine sensing the last pair of uncompressed keys in each set used in the generation of each compressed index block at said high level, means for machine assembling each last pair of uncompressed keys in the sequence provided by said machine sensing means, and means for actuating said assigning means, said last-mentioned machine compressing means, and said machine recording means to generate each entry for a still higher level in said compressed index.
 35. A system of generating each still higher level for a compressed index, including the means defined in claim 34, further including means for machine indicating the end of generation for each index level and providing an end-of-index signal for each high level being generated, means for terminating each current level of said compressed index in response to said end-of-index signal, and means for actuating the prior-named means used in generating each prior high level for generating a next high level.
 36. A system of generating a multilevel compressed index using the means defined in claim 35, further comprising means for machine counting the number of levels in the compressed index currently generated, means for machine signalling when said machine counting step indicates a predetermined number of levels upon an occurrence of said end-of-index signal, and means for machine terminating the generation of said multilevel Index in response to an indication by said machine signalling means, whereby a last generated level is an apex level for the multilevel index.
 37. A system of generating a multilevel compressed index as defined in claim 35, including means for machine signalling a continuing signal that generating should start for a next higher level when plural index blocks are generated at any current level upon activation of said machine terminating means for the current level, means for machine generating a next higher level in said compressed multilevel index in response to said continuing signal, and means for machine ending the compressed index generation upon said machine signalling means ending the continuing signal when only one block comprises the next higher level, whereby said one block is an apex compressed block for the multilevel compressed index.
 38. A system of generating a multilevel index as defined in claim 37, including means for machine storing a pointer to said last index block in a predetermined location for future accessing of the multilevel compressed index.
 39. A system of generating each high level of a compressed index, comprising means for machine assembling a sequence of boundary pairs of uncompressed keys used in the generation of a plurality of blocks in a next lower level of the compressed index, means for machine assigning a respective pointer to each of said boundary pairs, said pointer being related to the address of a related one of the blocks in the next lower level, means for machine grouping said boundary pairs and said respective pointers in sequence for the generating of index blocks in said high level, and means for machine recognizing a null condition as a first uncompressed key in the sequence of boundary pairs, and means for machine storing a plurality of groupings of said boundary pairs of uncompressed keys in preparation for the generation of a high level of said index.
 40. A system of generating a high level of a compressed index as defined in claim 39, comprising means for machine reading the groupings of uncompressed keys in the sequence stored by said machine storing means, means for machine compressing the uncompressed keys in each grouping to provide compressed keys, means for machine recording said compressed keys in sequential pairs with a related one of said pointers to provide each compressed index entry for said high level, means for machine blocking said entries in their generated sequence for each group of uncompressed keys to generate each high level block, and means for reactivating the preceding steps for each group for said high level until an end is reached for the groups of compressed keys provided by said machine reading means, whereby the end of the index at said high level is reached upon said machine compressing means reaching the end of the compressed keys provided by said machine reading means.
 41. A system as defined in claim 40 for generating a next higher level in a multilevel index, including means for reactuating said machine assembling means, said machine assigning means, said machine grouping means, said machine storing means, said machine reading means, said machine compressing means, said machine recording means, and said machine blocking means until the next higher level is completed.
 42. A system as defined in claim 41 for generating a multilevel index, including means for ending the construction of said index as soon as any high level compressed index is completed with a single index block. 